package _07剪邮票.拓展_连通性检测;

import java.util.Arrays;

/**
 假设现在一个整数对序列，每个整数代表某种类型的对象，
 用p-q对表示“p连接到q”，又假设连接具有传递性，即p连接到q，q连接到r，则p连接到r。

 例一：解决连通性问题的快速查找算法
 */
public class demo1 {


    public static void main(String[] args) {
        int N = 10;
        int id [] = new int[N];
        for(int i = 0; i < N; i++){
            id[i] = i;
        }
        int [] [] a =  new int [][]{
                {3,4},{4,9},{8,0},{2,3},{0,2},{5,6},
                {2,9},{5,9},{7,3},{4,8},{5,6},{6,1}
        };
        System.out.println(Arrays.toString(id));
        for(int [] s : a){
            int p = s[0], q = s[1];
            int t = id[p];
            if(t == id[q]){
                continue;
            }
            for(int i = 0; i < N; i++){
                if(id[i] == t){
                    id[i] = id[q];
                    System.out.println(" " + p + " " + q);
                    System.out.println(Arrays.toString(id));
                }
            }
        }

    }
}